Softmax 函数

Softmax 函数是一种常用的归一化指数函数,它将任意长度的实数向量转换为一个概率分布。Softmax函数在多分类问题中的神经网络和其他机器学习模型中广泛使用,特别是在输出层,用于计算每个类别的预测概率。

给定一个实数向量 z=(z1,z2,,zC),Softmax函数的定义如下:

softmax(zi)=ezij=1Cezj

其中,zi 表示输入向量的第 i 个元素,C 表示输入向量的长度,即类别数。Softmax 函数将输入向量 z=(z1,z2,,zC) 归一化为一个概率分布向量 p=(p1,p2,,pC),其中 pi 表示输入向量属于第 i 个类别的概率。

Softmax函数的输出结果满足以下性质:

  1. 输出值在 0 和 1 之间,表示概率;
  2. 输出值之和为 1,保证概率分布的性质;
  3. 输出值的大小顺序与输入值的大小顺序一致,即输入值较大的元素对应的输出值也较大。

由于Softmax函数的这些性质,它在多分类问题中被广泛应用。在神经网络中,通常将Softmax函数应用于输出层,以将最后一层的输出转换为概率分布。通过比较每个类别的概率,我们可以找到具有最高概率的类别,从而得到模型的预测结果。在训练过程中,Softmax函数的输出通常与真实标签的概率分布一起,用于计算交叉熵误差,又称交叉熵损失Cross-Entropy Loss),以指导模型的优化。


代码实现

实现 softmax 运算:

import torch
torch.nn.functional.softmax(x, dim=1)

本文作者:Maeiee

本文链接:Softmax 函数

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!